package cn.lg.soar.common.algorithm;

import java.util.Base64;

/**
 * 数据签名器
 * @author luguoxiang 469599794@qq.com
 * @Date: 2025/5/19 9:10
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface Signer {

    Base64.Encoder BASE64URLEN = Base64.getUrlEncoder();

    /**
     * 签名
     * @param data 要签名的数据
     * @return
     */
    byte[] sign(byte[] data);

    /**
     * 签名
     * @param data 要签名的数据
     * @return
     */
    byte[] sign(String data);

    /**
     * 签名
     * @param data
     * @return
     */
    default String signBase64(byte[] data) {
        return BASE64URLEN.encodeToString(sign(data));
    }

    /**
     * 签名
     * @param data
     * @return
     */
    default String signBase64(String data) {
        return BASE64URLEN.encodeToString(sign(data));
    }

}